import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
//引入elementUI
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
Vue.use(ElementUI); //注入到所有子组件
//引入公共基础样式文件
import "./assets/style/base.less";
import "./assets/style/el-reset.less";

// Vue.config.productionTip = false;
//引入图标库
let script = document.createElement("script");
script.src = "//at.alicdn.com/t/font_2692046_ckb70oxgais.js";
document.documentElement.appendChild(script);
//引入渲染菜单栏的插件
import qfsubmenu from "qf-sub-menu";
Vue.use(qfsubmenu); //注入到所有子组件

//路由守卫  路由前置钩子函数beforEach
router.beforeEach((to, from, next) => {
  // console.log(to);
  // console.log(from);
  //将本地的toke取出
  let token = localStorage.getItem("qf-token") || "";
  // console.log(token);
  //如果有toke证明已经登陆，通行访问
  if (token) {
    // next()
    //如果没有生成用户菜单就触发GET_MENU生成用户菜单
    if (!store.state.sideMenu.length) {
      store.dispatch("GET_MENU").then(() => {
        //生成菜单之后就通行，注意！这里的通行里要加路径，就固定这样写
        next({ path: to.path }); //这样写是为了确保addRoutes生效
      });
    } else {
      //如果已经生成好菜单就直接通行
      next();
    }
  } else {
    //如果没有登录，但是访问的是登录页面也不拦截
    if (to.path === "/login") {
      next();
    } else {
      //如果没有登录，访问其他页面会进行拦截
      next({ path: "/login" });
    }
  }
});

new Vue({
  router,
  store,
  render: (h) => h(App),
}).$mount("#app");
